package com.jintoufs.service.scene;

import com.jintoufs.dao.QueryFilters;
import com.jintoufs.domain.customer.Customer;
import com.jintoufs.domain.scene.Scene;
import com.jintoufs.domain.scene.SceneTicket;

import java.util.List;
import java.util.Map;

public interface SceneService {
    /**
     * 保存鱼·定制的方法
     * @param scene
     * @return
     */
    Scene save(Scene scene);


    /**
     * 删除
     */
    void delete(String id);


    /**
     * 更新
     */
    void update(Scene hotel);

    /**
     * 添加
     */
    Scene add(Scene hotel);


    Map<String, Object> save(Scene scene,String id);

    Map<String, Object> save(Scene scene,String id,Customer customer);

    /**
     * 根据参数查询
     */
    List<Map<String,Object>> selectByParams(Map<String, Object> params);

    /**
     * 根据参数查询
     */
    List<Map<String,Object>> queryByParams(Map<String, Object> params);
    /**
     * 根据条件查询
     * @param filters 属性列表，过滤存在的属性值
     */

    List<Map<String,Object>> getByFilter(QueryFilters filters);

    List<SceneTicket> getTicketList(String hotelId);


    List<Map<String,Object>> findByScene(Map<String, Object> params);

    //酒店明细
    Map<String,Object> getById(String id);


    Map<String, Object> insert(Scene scene,String id);

    /**
     * 根据条件获取鱼·定制列表
     * @param customer
     * @return
     */
    List<Map<String,Object>> getScenesByCustomer(Customer customer);

    /**
     * 获取所有鱼·定制推荐列表
     * @return
     */
    List<Map<String,Object>> getRecommends(Map param);

    /**
     * 获取所有鱼·定制列表，根据参数条件
     * @param params
     * @return
     */
    List<Map<String,Object>> getScenesByParams(Map<String,Object> params);

    /**
     * 获取鱼·定制下所有鱼·定制产品列表
     * @param params
     * @return
     */
    List<Map<String, Object>> getTicketsByParams(Map<String, Object> params);


    List<Map<String, Object>> queryPriceByParams(Map<String, Object> params);

    /**
     * 保存鱼·定制产品的方法
     * @param sceneTicket
     * @return
     */
    SceneTicket saveTicket(SceneTicket sceneTicket,String oper);


    /**
     * 根据鱼·定制产品id，获取鱼·定制产品详情
     * @param ticketId
     * @return
     */
    SceneTicket getTicketById(String ticketId);

    /**
     * 删除鱼·定制产品
     * @param ticketId
     * @return
     */
    int deleteTicketByid(String ticketId);


    List<Map<String, Object>> getBySearch(Map<String, Object> params);

    void unlock(String id);

    Scene selectByPrimaryKey(String id);

    Map<String,Object> getOnePriceOnScene(String sceneId);

}
